package com.xbh.boot_study.annotion.valid;


import com.xbh.boot_study.annotion.valid.impl.ParamNoNullValidator;

import javax.validation.Constraint;
import javax.validation.Payload;
import javax.validation.groups.Default;
import java.lang.annotation.*;

@Documented
@Target({ElementType.PARAMETER})
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = {ParamNoNullValidator.class})
public @interface ParamNoNullValid {

    /**
     * 要验证的分组
     */
    Class<?>[] groupings() default { Default.class };
    /**
     * message 定制化的提示信息，主要是从ValidationMessages.properties里提取，也可以依据实际情况进行定制
     */
    String message() default "参数不能为空!";
    /**
     * groups 这里主要进行将validator进行分类，不同的类group中会执行不同的validator操作
     */
    Class<?>[] groups() default {};
    /**
     * payload 主要是针对bean的，使用不多。
     */
    Class<? extends Payload>[] payload() default {};
    /**
     * 可以指定值用于校验
     */
    // String[] values() default {};
}
